package cn.asm;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
  *用来加载byte[]，由于defineClass不是public修饰的所以只能这样写。
  */
public class MyClassLoader extends ClassLoader {
  public Class getClassByBytes(byte[] bytes) {
        return defineClass(null, bytes, 0, bytes.length);
    }

//  public static void main(String[] args) throws Exception {
//        MyClassLoader myClassLoader = new MyClassLoader();
//        Class classByBytes = myClassLoader.getClassByBytes(create());
//        Object o = classByBytes.newInstance();
//        Field field = classByBytes.getField("age");
//        Object o1 = field.get(o);
//        Method method = classByBytes.getMethod("getAge");
//        Object o2 = method.invoke(o);
//        System.out.println("Field age:  " + o1 );
//        System.out.println("Method method :  " + o2);
//    }
}
